什么是 java、javax、java EE、Jakarta 、Jakarta EE ?
accttodo
# 什么是 java、javax、java EE、Jakarta 、Jakarta EE ?
以下是 Java 相关技术术语的详细解释及发展脉络:
# 一、核心概念定义
- Java
- 指 Java 编程语言及其基础平台(Java SE,Standard Edition),包含语言规范、JVM(Java 虚拟机)和核心类库。
- 示例:
java.lang.String
属于 Java SE 的核心类。
- javax
- Java 标准扩展包的命名空间前缀,最初用于 Java EE(企业版)的扩展 API,如
javax.servlet
(Servlet API)和javax.persistence
(JPA)。 - 注意:Jakarta EE 后,
javax.*
逐步迁移为jakarta.*
。
- Java 标准扩展包的命名空间前缀,最初用于 Java EE(企业版)的扩展 API,如
- **Java EE(Java Platform, Enterprise Edition)**
- 基于 Java SE 的企业级开发规范,提供 Servlet、JPA、EJB 等组件,用于构建分布式应用。
- 历史名称:1999 年称为 J2EE(Java 2 EE),2006 年更名为 Java EE。
- Jakarta
- Eclipse 基金会管理的开源项目品牌,承接原 Java EE 的技术生态。
- 名称来源:印度尼西亚首都雅加达(Jakarta),与 Java 岛(爪哇岛)呼应。
- Jakarta EE
- Java EE 的继任者,由 Eclipse 基金会维护,专注于云原生和企业级开发。
- 核心变更:包路径从
javax.*
改为jakarta.*
(如jakarta.servlet
)。
# 二、历史演进与关系
时期 | 技术名称 | 管理方 | 关键变化 |
---|---|---|---|
1999–2006 | J2EE | Sun Microsystems | 首个企业版规范 |
2006–2017 | Java EE | Oracle | 更名并持续迭代 |
2017 至今 | Jakarta EE | Eclipse 基金会 | 包路径迁移至 jakarta.* |
# 三、常见混淆点
- Java EE vs Jakarta EE
- 相同点:技术规范基本一致(如 Servlet、JPA)。
- 不同点:Jakarta EE 采用新包路径,且开发流程更开放。
- javax 与 jakarta 的兼容性
- Tomcat 10 或 Spring Boot 3 等新技术栈仅支持
jakarta.*
,旧项目需手动迁移。
- Tomcat 10 或 Spring Boot 3 等新技术栈仅支持
# 四、应用场景
- 传统系统:Java EE(如银行遗留系统使用
javax.servlet
)。 - 现代开发:Jakarta EE(云原生应用推荐)。
如需进一步了解具体技术组件(如 Servlet、JPA,可提供更细化的解答。